/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.borrow.dao;

import com.thinkgem.jeesite.common.persistence.CrudDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.borrow.entity.Borrow;
import org.apache.ibatis.annotations.Param;

import java.sql.Date;
import java.util.List;
import java.util.Map;


/**
 * 借阅DAO接口
 * @author ThinkGem
 * @version 2014-05-16
 */
@MyBatisDao
public interface BorrowDao extends CrudDao<Borrow> {


    //根据用户rdId获取用户借阅的数量
    int getBorrowCount(String rdId);


    //借阅归还
    int updateback(String zlId,String rtnDate,String userName, String status);

    //续借更新
    int updatecontinue(String zlId,String rtnDate,String userName, String status,int count);

    //根据用户rdId获取用户借阅记录
    List<Borrow> findborrowListbyCardno(String rdId);

    //根据用户rdId获取用户借阅记录
    List<Borrow> findborrowListbyRdid(String rdId);


    //扫描书籍，显示读者信息 和该用户所借的书籍
//    List<Borrow> findborrowListbybookid(String banid);

    //扫描书籍，显示读者信息 和该用户所借的书籍
    Borrow findBorrowListByBanid(String banid);

    //查询当前图书条码号是否已经被借出
    int findExistBook(String banid);

    List<Map<String, Integer>> getBooksBorrowAmount(@Param("begin") Date begin, @Param("end") Date end, @Param("limit") String limit);
//    List<Borrow> findborrowListAfterUpdate(Borrow borrow);
    Borrow findborrowListAfterUpdate(Borrow borrow);
    //查询统计->当前流通各类状况的数据显示
    List<Borrow> findCurrentCirculation(Borrow borrow);

    List<Map<String, Integer>> getOneDayBorrowUserAmount(@Param("date") String date);

    List<Map<String,Object>> utilizationToTal(@Param("begin") String begin, @Param("end") String end);

    List<Map<String,Object>> utilizationBook(@Param("begin") String begin, @Param("end") String end);

    List<Map<String,Object>> utilizationReader(@Param("begin") String begin, @Param("end") String end);

    List<Map<String,Integer>> getreaderStatistics(@Param("type")String type, @Param("begin")String begin, @Param("end")String end);

    List<Map<String,Object>> outLine(@Param("begin")String begin, @Param("end")String end, @Param("now")String now);

    List<Map<String,Object>> bookBorrowStatisticsByType(@Param("begin")String begin, @Param("end")String end);

    List<Map<String,Object>> bookBorrowStatisticsByLevel(@Param("begin")String begin, @Param("end")String end);

    List<Map<String,Object>> bookBorrowStatisticsByOther(@Param("begin")String begin, @Param("end")String end);
    List<Borrow> findBorrowListByReaderType(Borrow borrow);
}
